{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "# OT mapping estimation for domain adaptation\n",
    "\n",
    "\n",
    "This example presents how to use MappingTransport to estimate at the same\n",
    "time both the coupling transport and approximate the transport map with either\n",
    "a linear or a kernelized mapping as introduced in [8].\n",
    "\n",
    "[8] M. Perrot, N. Courty, R. Flamary, A. Habrard,\n",
    "    \"Mapping estimation for discrete optimal transport\",\n",
    "    Neural Information Processing Systems (NIPS), 2016.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Authors: Remi Flamary <remi.flamary@unice.fr>\n",
    "#          Stanislas Chambon <stan.chambon@gmail.com>\n",
    "#\n",
    "# License: MIT License\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pylab as pl\n",
    "import ot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Generate data\n",
    "-------------\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "n_source_samples = 100\n",
    "n_target_samples = 100\n",
    "theta = 2 * np.pi / 20\n",
    "noise_level = 0.1\n",
    "\n",
    "Xs, ys = ot.datasets.make_data_classif(\n",
    "    'gaussrot', n_source_samples, nz=noise_level)\n",
    "Xs_new, _ = ot.datasets.make_data_classif(\n",
    "    'gaussrot', n_source_samples, nz=noise_level)\n",
    "Xt, yt = ot.datasets.make_data_classif(\n",
    "    'gaussrot', n_target_samples, theta=theta, nz=noise_level)\n",
    "\n",
    "# one of the target mode changes its variance (no linear mapping)\n",
    "Xt[yt == 2] *= 3\n",
    "Xt = Xt + 4"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot data\n",
    "---------\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5,1,'Source and target distributions')"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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XcXAgQPJycnh7rvvBmD+/PmMGjWKYcOGMXbsWH755ZcqcT333HMMHDiQwYMHc/DBBwOwYsUKDjroIIYOHcrQoUP59NNPAWekadSoURx33HH06dOHKVOm8NRTTzFixAgGDRrEsmXLAJg4cSKTJk0iLy+Pvn37MmvWrCr9FhUVce655zJixAiGDBnCyy+/DMDXX3/NiBEjyM3NJScnhx9++CEl738pS6qMaUZ3/eFBircWEw6GAQiVhCkuKOZflz6c9JqpJ/6dT1/+gnAwQjgYYd1PG5h64q38+FWtdlEwxrRCRxxxBKtWraJv375cdNFFfPDBB4CzgH7ixIk888wzfPXVV0QiEe67774a2/vmm294++23efrpp3nggQdYsWIFCxcuZPHixfz2t78lHA5zySWX8PzzzzN//nzOPfdc/u///q9KO9OmTePNN99k0aJFvPLKKwDstNNOvPXWWyxYsIBnnnmGP/7xj2XnL1q0iBkzZvDtt9/yxBNP8P333zNv3jzOP//8smQOnMRs3rx5zJ49m0mTJlVZXD59+nQOPfRQ5s2bx3vvvcfkyZMpKipixowZXHrppSxcuJD8/Hx69OhRr/c7GRvTM6aZqCpfffQtqpVfh0XvfZ3wmp+X/co3n35HOBip8Ho4GOG521/lT49c3FjhGmNSpHR0au6Pmyp8/MyF+9W7zaysLObPn89HH33Ee++9x6mnnsrNN9/MkCFD6N27N3379gXg7LPP5l//+heXXXZZte0de+yx+P1+AN5++20mTZpUNg3YqVMnlixZwpIlSxgzZgwA0WiU7t27V2nngAMOYOLEiUyYMIETTzwRcGp6XXzxxSxcuBC32833339fdv7w4cPL2tljjz044ogjABg0aBDvvfde2XkTJkzA5XKx11570adPH5YuXVqh3zlz5vDKK69w2223AU5yuXLlSvbbbz+mT5/O6tWrOfHEE9lrr71q+Q7XjiVVxjQTEcGX5iUYqLruwedPXHhu7U/r8fg8Va6JRWOs/m770HsoGOa/N7/E6w+9QyQY4YATRnLOjafRvku71N6EMWaH4Xa7GT16NKNHj2bQoEE89thjDBkyJOn5Ho+HWCwGUGWkJzMzs9q+VJUBAwbw2WfVT1/OmDGDuXPnMnv2bIYNG8b8+fO5++676datG4sWLSIWi5Genl52fun0JYDL5Sr72OVy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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pl.figure(1, (10, 5))\n",
    "pl.clf()\n",
    "pl.scatter(Xs[:, 0], Xs[:, 1], c=ys, marker='+', label='Source samples')\n",
    "pl.scatter(Xt[:, 0], Xt[:, 1], c=yt, marker='o', label='Target samples')\n",
    "pl.legend(loc=0)\n",
    "pl.title('Source and target distributions')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Instantiate the different transport algorithms and fit them\n",
    "-----------------------------------------------------------\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "It.  |Loss        |Delta loss\n",
      "--------------------------------\n",
      "    0|4.132385e+03|0.000000e+00\n",
      "    1|4.124370e+03|-1.939427e-03\n",
      "    2|4.124043e+03|-7.928706e-05\n",
      "    3|4.123904e+03|-3.369312e-05\n",
      "    4|4.123827e+03|-1.881208e-05\n",
      "    5|4.123778e+03|-1.184435e-05\n",
      "    6|4.123764e+03|-3.358329e-06\n",
      "It.  |Loss        |Delta loss\n",
      "--------------------------------\n",
      "    0|4.143700e+02|0.000000e+00\n",
      "    1|4.111590e+02|-7.748977e-03\n",
      "    2|4.109509e+02|-5.062453e-04\n",
      "    3|4.108581e+02|-2.257162e-04\n",
      "    4|4.107918e+02|-1.614130e-04\n",
      "    5|4.107473e+02|-1.083067e-04\n",
      "    6|4.107110e+02|-8.833802e-05\n",
      "    7|4.106839e+02|-6.600463e-05\n",
      "    8|4.106615e+02|-5.455553e-05\n",
      "    9|4.106428e+02|-4.548650e-05\n",
      "   10|4.106278e+02|-3.649926e-05\n"
     ]
    }
   ],
   "source": [
    "# MappingTransport with linear kernel\n",
    "ot_mapping_linear = ot.da.MappingTransport(\n",
    "    kernel=\"linear\", mu=1e0, eta=1e-8, bias=True,\n",
    "    max_iter=20, verbose=True)\n",
    "\n",
    "ot_mapping_linear.fit(Xs=Xs, Xt=Xt)\n",
    "\n",
    "# for original source samples, transform applies barycentric mapping\n",
    "transp_Xs_linear = ot_mapping_linear.transform(Xs=Xs)\n",
    "\n",
    "# for out of source samples, transform applies the linear mapping\n",
    "transp_Xs_linear_new = ot_mapping_linear.transform(Xs=Xs_new)\n",
    "\n",
    "\n",
    "# MappingTransport with gaussian kernel\n",
    "ot_mapping_gaussian = ot.da.MappingTransport(\n",
    "    kernel=\"gaussian\", eta=1e-5, mu=1e-1, bias=True, sigma=1,\n",
    "    max_iter=10, verbose=True)\n",
    "ot_mapping_gaussian.fit(Xs=Xs, Xt=Xt)\n",
    "\n",
    "# for original source samples, transform applies barycentric mapping\n",
    "transp_Xs_gaussian = ot_mapping_gaussian.transform(Xs=Xs)\n",
    "\n",
    "# for out of source samples, transform applies the gaussian mapping\n",
    "transp_Xs_gaussian_new = ot_mapping_gaussian.transform(Xs=Xs_new)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot transported samples\n",
    "------------------------\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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81FV1yI1vzQtKL6/ZVapvBTx3EBImyGxAK9oP8SfgIZthHUnEdadYhpTRmuKH4g34d9kLRZu2Rv/NFAGlEDFFwHPcvYFa+zjVZIVWplrhg2gPuZI0Z9OIs6RapCEm/MyaIAJbcJ2zON22xmVGlRzR4qxBZpSSdynYZjNfH/+85958MEHeeSRRygpKeGQQw7JZrooKSkZZAVJ5e6772bGjBl56x988ME+jznttNNYtmwZ99xzD0cddRQ/+clPSCaTfbYl14nD8zyKioqy39Pp7pIThe3NXVZVwjDNFy/+KB858/10e/34IEU88cQT3HPP77j4kks56qgjueTiizJncX8DsuMZf7LN62Tcy1Xdd9/Z332s+m0KpRiReLdXXjZbhe888twEMt528xYSiUHNXS7tUx145Yg/EfGqtsv1InYt+s+M71uOuoI8dWYTiZn5L1hjZi+JQWwfxJ9ImF5j2cVFzG18oGc/9WR39n/xAA9JLLHg4bDMmeu6EK8M9cdDehWELqQjbLHz+3vnDcj6LnQ6cEUAu/kYhEGeD4WquuXh0X1GpQZVWRKnI5U/Ed+RCqgsGd7YlaamJqqrqykpKeH555/n8ccf73W//fbbj5deeonXX38dVeWOO7orwh555JH893//d3b56aefBqCiooKWll6yGQOrV69m5syZnHvuuRx77LE899xzg25Lf9x33300NjbS3t7Ob3/7W9761rfmbE1z5LsO4yc33UVbmwmJdes2sGVLA2+8sYGysjJOO+1Uzv/sOTz91DO9nN2eQpsUTToXcs8eUonbKC3c7Pbz6Na+uk2YIjE3P1XktKYys40Hrw5aOGl6dbdX4RAQiePFJuMlFuDFZ0fCKWK7ItU/dTWZEhBfjBQtQxIH48WmmBaVXgveWMSrRsZcbemKYrNNU6q51Srhhg0w9lbwZwAJSD1PWHeyzUdpC7rpAMt0ri32t/EctOlLNvfr7QEopBtAQ/BroOiA4b1Hf6LNp+VaSrQJvHHD5ng0KjWovWrLePo1i9guift0pALak2lmTRg7wJFD45hjjuGGG25gv/32Y9asWRx00EG97ldaWsr3v/993vnOd1JeXs7SpUuz2s2ll17Keeedx/z58wnDkJkzZ/Lb3/6W//iP/+Caa65h8eLFfPGLX+R973tf9nw///nPuf3224nH40yaNInLLruM4uLi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3HEHGzZs4JRTTskeG6mUxXD7VZXDDz+c++7LN08WvnxH4uSTT+buu+/md7/7HWeffTYXXXQRdXUjZ9/O7UMmiW2GqqrRg1tVlZe97GXceuuto57329/8gLv/9wF++/uHuPrqq3n88cdHvV+ZkiCw5yVCAMIw5B//+Ee2ZlaGj33sY7zmNa/h97//PSeddBL//d//zaGHHjrqb4iIiBiklBVThnH1UEReKSJPicizIvKxqe7U7e85kdvfcyIvWNLIC5Y0Zrcni3e9611cccUVHHnkkXn7Ozo6sk4TN954Y96xP//5z7S2ttLX18evf/3r7Ixj06ZNWUX005/+lBe/+MUsX76cXbt2ZfenUilWr15NfX099fX12UKCt9xyy7D927hxI83Nzbz73e/m3HPP5eGHH+aEE07gb3/7G7t37yYIAm699VZe8pKXANDc3MzatWsJw5A77rhjxN/9spe9LG/dq62tjRe+8IXce++9PPvsswD09PTw9NNPZ8/R9HqC5LNs3rSOU1+ykmuufg8dHa10d3ePer/GS6Z0yT333ENdXd0QRfzyl7+cr3/969lS1Y8+aqVA1q1bx5FHHsmll17K8ccfz5NPPrlH1y8m0y1XEREzjTEVlFhk2TeBVwGHAW8RkdKL6JoACxcu5IILLhiy/6Mf/SiXXXYZq1atyhvlA5xwwgm84Q1vYOXKlbzhDW/guOMsEe/y5cv55je/yYoVK2hra+N973sfiUSCX/ziF1x66aUcddRRHH300fz9738H4Ec/+hEf+MAHOProo7N1kgq56667OOqoo1i1ahW33347F154IfPmzeOaa67h1FNP5aijjuLYY4/lda97HQDXXHMNp512Gi960YuYN2/eiL/7k5/8JG1tbRxxxBEcddRR3HnnncyePZsbb7yRt7zlLaxcuZITTzxxyMs+CALefvbHWbnq9Rxz/Ol88Px3UF9fP+r9Gi/l5eWsWrWK9773vfzgBz/IO6Ya8LXrruGhB+/nqKNWcthhK/jWt74FwHXXXccRRxzBypUricfjvOpVr9qj6xeLfVGuImYWGrYRJtcSJh8lTG+1rOQlxpjlNkTkROBKVX2F274MQFU/P9J3JqPcRilx44038uCDD3L99dfn7d+wYQOnnXYaTzzxRJF6Nn1MRZLWU045hWuvvTar7POup6EL2IW8xLF4IGNXOy71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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pl.figure(2)\n",
    "pl.clf()\n",
    "pl.subplot(2, 2, 1)\n",
    "pl.scatter(Xt[:, 0], Xt[:, 1], c=yt, marker='o',\n",
    "           label='Target samples', alpha=.2)\n",
    "pl.scatter(transp_Xs_linear[:, 0], transp_Xs_linear[:, 1], c=ys, marker='+',\n",
    "           label='Mapped source samples')\n",
    "pl.title(\"Bary. mapping (linear)\")\n",
    "pl.legend(loc=0)\n",
    "\n",
    "pl.subplot(2, 2, 2)\n",
    "pl.scatter(Xt[:, 0], Xt[:, 1], c=yt, marker='o',\n",
    "           label='Target samples', alpha=.2)\n",
    "pl.scatter(transp_Xs_linear_new[:, 0], transp_Xs_linear_new[:, 1],\n",
    "           c=ys, marker='+', label='Learned mapping')\n",
    "pl.title(\"Estim. mapping (linear)\")\n",
    "\n",
    "pl.subplot(2, 2, 3)\n",
    "pl.scatter(Xt[:, 0], Xt[:, 1], c=yt, marker='o',\n",
    "           label='Target samples', alpha=.2)\n",
    "pl.scatter(transp_Xs_gaussian[:, 0], transp_Xs_gaussian[:, 1], c=ys,\n",
    "           marker='+', label='barycentric mapping')\n",
    "pl.title(\"Bary. mapping (kernel)\")\n",
    "\n",
    "pl.subplot(2, 2, 4)\n",
    "pl.scatter(Xt[:, 0], Xt[:, 1], c=yt, marker='o',\n",
    "           label='Target samples', alpha=.2)\n",
    "pl.scatter(transp_Xs_gaussian_new[:, 0], transp_Xs_gaussian_new[:, 1], c=ys,\n",
    "           marker='+', label='Learned mapping')\n",
    "pl.title(\"Estim. mapping (kernel)\")\n",
    "pl.tight_layout()\n",
    "\n",
    "pl.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
